#include "StdAfx.h"
#include "qihsubsystem.h"

QihSubSystem::QihSubSystem(QObject *parent)
	: QihModule(parent)
{

}

QihSubSystem::~QihSubSystem()
{
	freeAllModules();
}

void QihSubSystem::doStart()
{
	foreach(QihModule* pModule, _modules)
	{
		pModule->start();
	}
}

void QihSubSystem::doStop()
{
	foreach(QihModule* pModule, _modules)
	{
		pModule->stop();
	}
}

void QihSubSystem::addModule( QihModule* pModule )
{
	if(_modules.indexOf(pModule) == -1)
		_modules.append(pModule);
}

void QihSubSystem::removeModule( QihModule* pModule )
{
	_modules.removeOne(pModule);
}

void QihSubSystem::freeAllModules()
{
	while(!_modules.isEmpty())
	{
		QihModule* pModule = _modules.takeFirst();
		delete pModule;
	}
}